---
title: CountDownLatch和CyclicBarrier
---
CountDownLatch 主要用来解决一组线程等待其它一组线程完成操作，再继续执行。而CyclicBarrier 则是一组线程之间互相等待，到达一个共同点，再继续执行。

CountDownLatch 采用累加计数，而 CyclicBarrier 则采用倒数计数。CountDownLatch 利用 AQS 的共享锁来进行线程的通知，利用 CAS 来进行减少计数，而 CyclicBarrier 则利用 ReentrantLock 和 Condition 来阻塞和通知线程。




